package com.iwhalecloud.citybrain.flow.platform.manager.application.service;

import java.util.List;

import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.FlowProcessInstanceTraceVo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.monitor.FlowTaskTraceVo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.statistics.ProcessInstanceStatisticsQueryVo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.statistics.ProcessSummaryQueryVo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.statistics.ProcessSummaryVo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.statistics.TaskStatisticsQueryVo;

/**
 * @author lilh
 * @date 2019-08-26 14:02
 */
public interface FlowStatisticsService {

    /**
     * 任务明细列表
     *
     * @param taskStatisticsQueryVo 查询条件
     * @return 列表
     */
    List<FlowTaskTraceVo> listTask(TaskStatisticsQueryVo taskStatisticsQueryVo);


    /**
     * 流程实例明细列表
     *
     * @param processInstanceStatisticsQueryVo 查询条件
     * @return 列表
     */
    List<FlowProcessInstanceTraceVo> listProcessInstance(ProcessInstanceStatisticsQueryVo processInstanceStatisticsQueryVo);


    /**
     * 任务统计
     *
     * @param processSummaryQueryVo 查询条件
     * @return 列表
     */
    List<ProcessSummaryVo> taskSummary(ProcessSummaryQueryVo processSummaryQueryVo);

    /**
     * 实例统计
     *
     * @param processSummaryQueryVo 查询条件
     * @return 列表
     */
    List<ProcessSummaryVo> processInstanceSummary(ProcessSummaryQueryVo processSummaryQueryVo);

}
